<?php

/**
 * This is the model class for table "tbl_locationcontacts".
 *
 * The followings are the available columns in table 'tbl_locationcontacts':
 * @property integer $id
 * @property string $custno
 * @property string $locno
 * @property string $contact
 * @property string $email
 * @property string $phoneoffice
 * @property string $phonemobile
 * @property string $phonefax
 * @property string $extension
 * @property string $salutation
 * @property string $jobtitle
 * @property integer $sort
 */
class Locationcontacts extends CActiveRecord {

    const CONTACT_STATUS_ACTIVE = 0;
    const CONTACT_STATUS_INACTIVE = 1;
    const CONTACT_STATUS_DELETED = 2;
    /**
     * Returns the static model of the specified AR class.
     * @return Locationcontacts the static model class
     */
    public static function model($className=__CLASS__) {
        return parent::model($className);
    }

    /**
     * @return string the associated database table name
     */
    public function tableName() {
        return 'tbl_locationcontacts';
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules() {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('custno, locno, contact,status', 'required'),
           
            array('custno', 'length', 'max' => 7),
            array('locno', 'length', 'max' => 5),
            array('contact', 'length', 'max' => 30),
            array('email', 'length', 'max' => 1000),
            array('email','email'),
            array('phoneoffice, phonemobile, phonefax', 'length', 'max' => 12),
            array('extension', 'length', 'max' => 6),
            array('salutation', 'length', 'max' => 40),
            array('jobtitle', 'length', 'max' => 50),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('id, custno, locno, contact, email, phoneoffice, phonemobile, phonefax, extension, salutation, jobtitle', 'safe', 'on' => 'search'),
        );
    }

    /**
     * @return array relational rules.
     */
    public function relations() {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
        );
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels() {
        return array(
            'id' => 'ID',
            'custno' => 'Customer Number',
            'locno' => 'Location Number',
            'contact' => 'Contact',
            'email' => 'Email',
            'phoneoffice' => 'Phone Office',
            'phonemobile' => 'Phone Mobile',
            'phonefax' => 'Fax',
            'extension' => 'Ext',
            'salutation' => 'Salutation',
            'jobtitle' => 'Title/Position',
         
        );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
     */
    public function search() {
        // Warning: Please modify the following code to remove attributes that
        // should not be searched.

        $criteria = new CDbCriteria;

        $criteria->compare('id', $this->id);
        $criteria->compare('custno', $this->custno, true);
        $criteria->compare('locno', $this->locno, true);
        $criteria->compare('contact', $this->contact, true);
        $criteria->compare('email', $this->email, true);
        $criteria->compare('phoneoffice', $this->phoneoffice, true);
        $criteria->compare('phonemobile', $this->phonemobile, true);
        $criteria->compare('phonefax', $this->phonefax, true);
        $criteria->compare('extension', $this->extension, true);
        $criteria->compare('salutation', $this->salutation, true);
        $criteria->compare('jobtitle', $this->jobtitle, true);
     
        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
    }
    
    public function getStatusList(){
        return array(
            self::CONTACT_STATUS_ACTIVE=>'Active',
            self::CONTACT_STATUS_INACTIVE=>'Inactive'
        );
    }
    
    public function getStatusText(){
        return isset($this->statusList[$this->status])?$this->statusList[$this->status]:'';
    }
    
    public function beforeValidate()
    {
        if($this->status == null){
            $this->status = self::CONTACT_STATUS_ACTIVE;
        }
        return parent::beforeValidate();
    }

    public function isGlobal(){
        return $this->locno == '00000';
    }
}